Media content is delivered to client devices over networks using a variety of content streaming protocols including HTTP Live Streaming (HLS) implemented by Apple Inc. of Cupertino, Calif. Segments of media content for different versions or “variant streams” of the same content encoded at different bit rates are specified in a playlist. A content service provides the playlist to a media player on a client device which uses the playlist to generate properly formatted requests for segments of the media content for playback on the client device.
The HLS protocol may be used by a media player to play back content in different streaming scenarios referred to as “live” streaming and “video on demand” or “VOD” streaming. VOD streaming involves content for which all of the media segments have already been encoded such as, for example, television shows or feature-length films that are available “on demand” from a video service provider's library of content. Live streaming involves content (sometimes referred to as “linear content”) for which the media segments are encoded substantially in real time such as, for example, live sporting events, broadcast news, or content channels with scheduled content.
An HLS playlist includes tags for each variant stream that specify characteristics of the corresponding stream for use by the media player in controlling the manner in which it requests content segments. One required tag is the BANDWIDTH tag, the value for which represents the peak segment bit rate of the corresponding variant stream. Once this tag value is set, it remains fixed in the playlist for the duration of the streaming session.
Because all of the content segments for VOD content are previously generated, the actual peak bit rate and therefore the value for the BANDWIDTH tag may be determined with a high degree of accuracy before streaming of the VOD content begins. By contrast, because the content segments for live content are encoded in real time, the value of the BANDWIDTH tag is not determined in the same way. Inappropriate selection of the tag value can have negative consequences. If the tag value is too high, the media player may operate too conservatively, increasing the time required to begin playback of the content and/or potentially reducing the visual quality of the content played back on the client device. On the other hand, if the tag value is too low, the operation of the media player may not properly anticipate the peak bit rate, potentially resulting in an increase in rebuffering events.
Moreover, different constraints are imposed for the BANDWIDTH tag value for live content vs. VOD content. For streaming scenarios in which content from multiple sources is stitched together into a single streaming session, these differing requirements create the potential for circumstances to arise in which inserted secondary content (e.g., advertising content) has a peak bit rate that doesn't conform to the limit originally communicated to the media player at the beginning of the session.